/*
 *Copyright (c) Alibaba Group;
 *Licensed under the Apache License, Version 2.0 (the "License");
 *you may not use this file except in compliance with the License.
 *You may obtain a copy of the License at

 *   http://www.apache.org/licenses/LICENSE-2.0

 *Unless required by applicable law or agreed to in writing, software
 *distributed under the License is distributed on an "AS IS" BASIS,
 *WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *See the License for the specific language governing permissions and
 *limitations under the License.
 */
package org.example.service.commodity;

import org.example.common.BaseResult;
import org.example.common.ListResult;
import org.example.common.dto.CommoditySpecificationDTO;
import org.example.common.model.UserInfoModel;
import org.example.common.param.commodity.specification.CommoditySpecificationParam;
import org.example.common.param.commodity.specification.CreateCommoditySpecificationParam;
import org.example.common.param.commodity.specification.ListCommoditySpecificationParam;
import org.example.common.param.commodity.specification.UpdateCommoditySpecificationParam;
import org.springframework.validation.annotation.Validated;

import javax.validation.Valid;

public interface CommoditySpecificationService {

    BaseResult<Void> createCommoditySpecification(UserInfoModel userInfoModel, CreateCommoditySpecificationParam param);

    ListResult<CommoditySpecificationDTO> listAllSpecifications(UserInfoModel userInfoModel, ListCommoditySpecificationParam param);

    BaseResult<Void> updateCommoditySpecification(UserInfoModel userInfoModel, UpdateCommoditySpecificationParam param);

    BaseResult<Void> deleteCommoditySpecification(UserInfoModel userInfoModel, CommoditySpecificationParam param);

    BaseResult<CommoditySpecificationDTO> getCommoditySpecification(UserInfoModel userInfoModel, CommoditySpecificationParam param);
}
